package com.doublethread.easymart.modules.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.doublethread.easymart.common.result.PageResult;
import com.doublethread.easymart.modules.product.dto.CategoryDTO;
import com.doublethread.easymart.modules.product.dto.CategoryQueryDTO;
import com.doublethread.easymart.modules.product.dto.CategoryUpdateStatusDTO;
import com.doublethread.easymart.modules.product.entity.Category;
import com.doublethread.easymart.modules.product.vo.CategoryVO;

import java.util.List;

/**
 * 商品分类服务接口
 */
public interface CategoryService extends IService<Category> {

    /**
     * 获取分类树
     */
    List<CategoryVO> getCategoryTree();

    /**
     * 获取一级分类列表
     */
    List<CategoryVO> getFirstLevelCategories();

    /**
     * 根据父分类ID获取子分类列表
     */
    List<CategoryVO> getSubCategories(Long parentId);

    /**
     * 分页查询分类列表
     */
    PageResult<CategoryVO> getCategoryList(CategoryQueryDTO queryDTO);

    /**
     * 获取分类详情
     */
    CategoryVO getCategoryById(Long categoryId);

    /**
     * 创建分类
     */
    CategoryVO createCategory(CategoryDTO categoryDTO);

    /**
     * 更新分类
     */
    void updateCategory(Long categoryId, CategoryDTO categoryDTO);

    /**
     * 删除分类
     */
    void deleteCategory(Long categoryId);

    /**
     * 更新分类状态
     */
    void updateCategoryStatus(Long categoryId, CategoryUpdateStatusDTO statusDTO);

    /**
     * 上传分类图标
     */
    String uploadCategoryIcon(String iconBase64);
}
